Source code for fhirpack.extraction.imagingstudy

import fhirpack.extraction.base as base
import json
from typing import Union
import math

from fhirpy.lib import SyncFHIRResource
from fhirpy.lib import SyncFHIRReference
import fhirpack.utils as utils

import numpy as np
from tqdm import tqdm

tqdm.pandas()


[docs]class ExtractorImagingStudyMixin(base.BaseExtractorMixin):
[docs] def getImagingStudies( 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 = [] if len(input): input = self.castOperand(input, SyncFHIRReference, "ImagingStudy") result = self.getResources(input, resourceType="ImagingStudy", raw=True) elif self.isFrame and not ignoreFrame: utils.validateFrame(self) if self.resourceTypeIs("Patient"): input = self.data result = input.apply( lambda x: self.searchResources( searchParams=dict(searchParams, **{"subject": x.id}), resourceType="ImagingStudy", raw=True, ) ) result = result.values elif self.resourceTypeIs("ImagingStudy"): raise NotImplementedError else: raise NotImplementedError elif searchActive: result = self.searchResources( searchParams=searchParams, resourceType="ImagingStudy", raw=True ) else: raise NotImplementedError result = self.prepareOutput(result, "ImagingStudy") return result