data_extraction_protocol_charcoal
EHR Data Extraction protocol for Charcoal project.
Retrieves EHR JSON data and documents to dump to a location.
Classes
DataExtractionProtocolCharcoal
class DataExtractionProtocolCharcoal( *, patient_ids: Optional[list[str]] = None, patient_ids_file: Optional[os.PathLike | str] = None, algorithm: Sequence[NextGenPatientInfoDownloadAlgorithm], trial_name: Optional[str] = None, **kwargs: Any,):
Protocol for running EHR Data Extraction for Charcoal.
Data extraction protocol for Charcoal project.
Patient IDs can either be supplied as an explicit list of patient IDs or as a path to a file which contains one patient ID per line. These two options are mutually exclusive from each other.
Arguments
patient_ids
: List of patient ID strings. Mutually exclusive withpatient_ids_file
.patient_ids_file
: Path to file containing patient ID strings, one per line. Mutually exclusive withpatient_ids
.algorithm
: The sequence of algorithms to be used. On the modeller side these will be noop algorithms.trial_name
: Name of the trial.- **
**kwargs
**: Additional keyword arguments.
Ancestors
- BaseProtocolFactory
- abc.ABC
- bitfount.federated.roles._RolesMixIn
- bitfount.types._BaseSerializableObjectMixIn
Variables
- static
fields_dict : ClassVar[dict[str, marshmallow.fields.Field]]
algorithms : list
- Returns the algorithms in the protocol.
Methods
dump
def dump(self) ‑> SerializedProtocol:
Inherited from:
Returns the JSON-serializable representation of the protocol.
modeller
def modeller( self, mailbox: _ModellerMailbox, **kwargs: Any,) ‑> bitfount.federated.protocols.ehr.data_extraction_protocol_charcoal._ModellerSide:
Returns the Modeller side of the protocol.
run
def run( self, pod_identifiers: Collection[str], session: Optional[BitfountSession] = None, username: Optional[str] = None, hub: Optional[BitfountHub] = None, ms_config: Optional[MessageServiceConfig] = None, message_service: Optional[_MessageService] = None, pod_public_key_paths: Optional[Mapping[str, Path]] = None, identity_verification_method: IdentityVerificationMethod = IdentityVerificationMethod.OIDC_DEVICE_CODE, private_key_or_file: Optional[Union[RSAPrivateKey, Path]] = None, idp_url: Optional[str] = None, require_all_pods: bool = False, run_on_new_data_only: bool = False, model_out: Optional[Union[Path, str]] = None, project_id: Optional[str] = None, batched_execution: Optional[bool] = None,) ‑> Optional[Any]:
Inherited from:
Sets up a local Modeller instance and runs the protocol.
Arguments
pod_identifiers
: The BitfountHub pod identifiers to run against.session
: Optional. Session to use for authenticated requests. Created if needed.username
: Username to run as. Defaults to logged in user.hub
: BitfountHub instance. Default: hub.bitfount.com.ms_config
: Message service config. Default: messaging.bitfount.com.message_service
: Message service instance, created from ms_config if not provided. Defaults to "messaging.bitfount.com".pod_public_key_paths
: Public keys of pods to be checked against.identity_verification_method
: The identity verification method to use.private_key_or_file
: Private key (to be removed).idp_url
: The IDP URL.require_all_pods
: If true raise PodResponseError if at least one pod identifier specified rejects or fails to respond to a task request.run_on_new_data_only
: Whether to run the task on new datapoints only. Defaults to False.model_out
: The path to save the model to.project_id
: The project ID to run the task under.batched_execution
: Whether to run the task in batched mode. Defaults to False.
Returns Results of the protocol.
Raises
PodResponseError
: If require_all_pods is true and at least one pod identifier specified rejects or fails to respond to a task request.ValueError
: If attempting to train on multiple pods, and theDataStructure
table name is given as a string.
worker
def worker( self, mailbox: _WorkerMailbox, hub: BitfountHub, context: Optional[ProtocolContext] = None, **kwargs: Any,) ‑> _WorkerSide:
Returns worker side of the DataExtractionProtocolCharcoal protocol.
Arguments
mailbox
: Worker mailbox instance to allow communication to the modeller.hub
:BitfountHub
object to use for communication with the hub.context
: Optional. Run-time protocol context details for running.- **
**kwargs
**: Additional keyword arguments.