Artículo
· 6 jun, 2022 Lectura de 3 min

Cómo crear Pacientes y Observaciones de Pacientes con la aplicación iris-fhir-client

¡Hola Comunidad!

Este artículo muestra cómo crear Pacientes y Recursos de Observación de Pacientes mediante el uso de la aplicación iris-fhir-client.
image

Recomiendo leer mi primer artículo sobre esta aplicación y ver el vídeo de Youtube antes de continuar.

¡Empezamos!

1-Crear Recurso de Paciente

La siguiente función CreatePatient () de dc.FhirClient se puede usar para crear recursos de pacientes:

ClassMethod CreatePatient(givenName As %String, familyName As %String, birthDate As %String,gender As %String)

la función requiere giveName,failyName,birthDate y gender para crear el Recurso de Paciente
 el siguiente comando creará Patient

do ##class(dc.FhirClient).CreatePatient("PatientGN","PatientFN","2000-06-01","male")

image

Esta es la función de python en el archivo irisfhirclient.py que creará el paciente

import json
from fhirpy import SyncFHIRClient
from tabulate import tabulate
from fhirpy.base.searchset import Raw
import requests

def CreatePatient(givenName,familyName,birthDate,gender,url,api_key):
    headers = {"Content-Type":contentType,"x-api-key":api_key}
    client = SyncFHIRClient(url = url, extra_headers=headers)
    
    patient = client.resource("Patient")
    patient['name'] = [
        {
            'given': [givenName],
            'family': familyName,
            'use': 'official'
        }
    ]

    patient['birthDate'] = birthDate
    patient['gender'] = gender
    try:
        patient.save()
    except Exception as e:
        print("Error while creating Patient:" +str(e))       
        return
    print("Patient Created Successfully")    

 

2- Crear Recurso de Observación del Paciente

Vamos a crear Observación contra nuestro Recurso de Paciente recién creado

La siguente función CreateObservatoin() de dc.FhirClient se puede usar para crear Observaciones de pacientes
ClassMethod CreateObservation(patientId As %String, loincCode As %String, ObrCategory As %String, ObrValue As %Integer, ObrUOM As %String, effectiveDate As %String)

Parámetros

  • patientId es el id del paciente
  • LioncCode es el Código de Lionc. Puedes ver más detalles aquí
  • ObrCategory es la Categoría de Observación. Puedes ver más detalles aquí
  • ObrValue es el Valor de Observación
  • ObrUOM es la Unidad de Observación
  • EffectiveDate

El siguiente comando creará la observación de signos vitales del paciente

do ##class(dc.FhirClient).CreateObservation("8111","8310-5","vital-signs",96.8,"degF","2022-01-22")

image

Vamos a hacer una lista de las observaciones de los pacientes

do ##class(dc.FhirClient).GetPatientResources("Observation","8111")

image

Esa es la función de python en el archivo irisfhirclient.py que creará el paciente

import json
from fhirpy import SyncFHIRClient
from tabulate import tabulate
from fhirpy.base.searchset import Raw
import requests

#Function to create Patient Observation
def CreateObservation(patientId,loincCode,ObrCategory,ObrValue,ObrUOM,effectiveDate,url,api_key):
    headers = {"Content-Type":contentType,"x-api-key":api_key}
    client = SyncFHIRClient(url = url, extra_headers=headers)
    observation = client.resource(
    'Observation',
    status='preliminary',
    category=[{
        'coding': [{
            'system': 'http://hl7.org/fhir/observation-category',
            'code': ObrCategory
        }]
    }],
    code={
        'coding': [{
            'system': 'http://loinc.org',
            'code': loincCode
        }]
    })
    observation['effectiveDateTime'] = effectiveDate
       
    observation['valueQuantity'] = {
    'system': 'http://unitsofmeasure.org',
    'value': ObrValue,
    'code': ObrUOM
    }
    
    #find the patient
    patient = client.resources('Patient').search(_id=patientId).first()
    observation['subject'] = patient.to_reference()
    
    try:
        observation.save()
    except Exception as e:
        print("Error while creating observation :"+ str(e))       
        return
    print("Patient Observation Created Successfully")

Espero que os resulte útil.
 

Comentarios (0)1
Inicie sesión o regístrese para continuar