Source code for fhirpack.custom.extraction.sample

import json
import importlib
from typing import Union

import pandas as pd

from fhirpy.lib import SyncFHIRResource
from fhirpy.lib import SyncFHIRReference

import fhirpack.custom.extraction.base as base
import fhirpack.utils as utils


[docs]class PluginSampleExtractorMixin(base.PluginBaseExtractorMixin):
[docs] def unimplementedPluginSampleExtractorMethod( self, input: Union[ list[str], list[SyncFHIRReference], list[SyncFHIRResource], ] = None, searchParams: dict = None, params: dict = None, ignoreFrame: bool = False, ): searchActive = False if searchParams is None else True searchParams = {} if searchParams is None else searchParams params = {} if params is None else params input = [] if input is None else input result = [] # TODO prepare your context here if len(input): # TODO your code for data coming in as arguments input = self.castOperand(input, SyncFHIRReference, "replace") result = self.getResources(input, resourceType="replace", raw=True) elif self.isFrame and not ignoreFrame: # TODO your code for data coming in as a frame if self.resourceTypeIs("Patient"): input = self.data result = input.apply( lambda x: self.searchResources( searchParams=dict(searchParams, **{"replace": x.id}), resourceType="replace", raw=True, ) ) result = result.values elif self.resourceTypeIs("replace"): input = self.data.values result = self.getResources(input, resourceType="replace", raw=True) else: raise NotImplementedError elif searchActive: # TODO your code for searches result = self.searchResources( searchParams=searchParams, resourceType="replace", raw=True ) else: raise NotImplementedError result = self.prepareOutput(result) return result