def _store_clinic(self, public_key, name): address = helper.make_clinic_address(public_key) clinic = payload_pb2.CreateClinic() clinic.public_key = public_key clinic.name = name state_data = clinic.SerializeToString() self._context.set_state({address: state_data}, timeout=self.TIMEOUT)
def _load_clinic(self, public_key=None): clinic = None clinic_hex = [] if public_key is None else [ helper.make_clinic_address(public_key) ] state_entries = self._context.get_state(clinic_hex, timeout=self.TIMEOUT) if state_entries: clinic = payload_pb2.CreateClinic() clinic.ParseFromString(state_entries[0].data) return clinic
def create_clinic(self, name, wait=None, auth_user=None, auth_password=None): batch_key = txn_key = self._signer.get_public_key().as_hex() address = helper.make_clinic_address(clinic_pkey=txn_key) clinic = payload_pb2.CreateClinic( public_key=txn_key, name=name) payload = payload_pb2.TransactionPayload( payload_type=payload_pb2.TransactionPayload.CREATE_CLINIC, create_clinic=clinic) return self._send_healthcare_txn(txn_key, batch_key, [address], [address], payload, wait=wait, auth_user=auth_user, auth_password=auth_password)
def add_claim(self, claim_id, patient_pkey, wait=None, auth_user=None, auth_password=None): batch_key = txn_key = self._signer.get_public_key().as_hex() clinic_hex = helper.make_clinic_address(clinic_pkey=txn_key) claim_hex = helper.make_claim_address(claim_id=claim_id, clinic_pkey=txn_key) claim = payload_pb2.CreateClaim( claim_id=claim_id, clinic_pkey=txn_key, patient_pkey=patient_pkey, ) payload = payload_pb2.TransactionPayload( payload_type=payload_pb2.TransactionPayload.CREATE_CLAIM, create_claim=claim) return self._send_healthcare_txn(txn_key, batch_key, [claim_hex, clinic_hex], [claim_hex], payload, wait=wait, auth_user=auth_user, auth_password=auth_password)
def next_visit(self, claim_id, description, doctor_pkey, wait=None, auth_user=None, auth_password=None): batch_key = txn_key = self._signer.get_public_key().as_hex() clinic_hex = helper.make_clinic_address(clinic_pkey=txn_key) claim_hex = helper.make_claim_address(claim_id=claim_id, clinic_pkey=txn_key) current_times_str = str(time.time()) event_hex = helper.make_event_address(claim_id=claim_id, clinic_pkey=txn_key, event_time=current_times_str) next_visit = payload_pb2.ActionOnClaim( claim_id=claim_id, clinic_pkey=txn_key, description="Doctor pkey: {}, claim hex: {}, description: {}".format(doctor_pkey, claim_hex, description), event_time=current_times_str) payload = payload_pb2.TransactionPayload( payload_type=payload_pb2.TransactionPayload.NEXT_VISIT, next_visit=next_visit) return self._send_healthcare_txn(txn_key, batch_key, [claim_hex, event_hex, clinic_hex], [event_hex], payload, wait=wait, auth_user=auth_user, auth_password=auth_password)
def eat_pills(self, claim_id, description, wait=None, auth_user=None, auth_password=None): batch_key = txn_key = self._signer.get_public_key().as_hex() clinic_hex = helper.make_clinic_address(clinic_pkey=txn_key) address = helper.make_claim_address(claim_id=claim_id, clinic_pkey=txn_key) current_times_str = str(time.time()) event_hex = helper.make_event_address(claim_id=claim_id, clinic_pkey=txn_key, event_time=current_times_str) eat_pills = payload_pb2.ActionOnClaim( claim_id=claim_id, clinic_pkey=txn_key, description=description, event_time=current_times_str) payload = payload_pb2.TransactionPayload( payload_type=payload_pb2.TransactionPayload.EAT_PILLS, eat_pills=eat_pills) return self._send_healthcare_txn(txn_key, batch_key, [address, event_hex, clinic_hex], [event_hex], payload, wait=wait, auth_user=auth_user, auth_password=auth_password)
def attend_procedures(self, claim_id, description, wait=None, auth_user=None, auth_password=None): batch_key = txn_key = self._signer.get_public_key().as_hex() clinic_hex = helper.make_clinic_address(clinic_pkey=txn_key) claim_hex = helper.make_claim_address(claim_id=claim_id, clinic_pkey=txn_key) current_times_str = str(time.time()) event_hex = helper.make_event_address(claim_id=claim_id, clinic_pkey=txn_key, event_time=current_times_str) attend_procedures = payload_pb2.ActionOnClaim( claim_id=claim_id, clinic_pkey=txn_key, description=description, event_time=current_times_str) payload = payload_pb2.TransactionPayload( payload_type=payload_pb2.TransactionPayload.ATTEND_PROCEDURES, attend_procedures=attend_procedures) return self._send_healthcare_txn(txn_key, batch_key, [claim_hex, event_hex, clinic_hex], [event_hex], payload, wait=wait, auth_user=auth_user, auth_password=auth_password)
def assign_doctor(self, claim_id, doctor_pkey, wait=None, auth_user=None, auth_password=None): batch_key = txn_key = self._signer.get_public_key().as_hex() clinic_hex = helper.make_clinic_address(clinic_pkey=txn_key) claim_hex = helper.make_claim_address(claim_id=claim_id, clinic_pkey=txn_key) current_times_str = str(time.time()) event_hex = helper.make_event_address(claim_id=claim_id, clinic_pkey=txn_key, event_time=current_times_str) assign = payload_pb2.ActionOnClaim( claim_id=claim_id, clinic_pkey=txn_key, description="Doctor pkey: {}, assigned to claim: {}".format(doctor_pkey, claim_hex), event_time=current_times_str) payload = payload_pb2.TransactionPayload( payload_type=payload_pb2.TransactionPayload.ASSIGN_DOCTOR, assign_doctor=assign) return self._send_healthcare_txn(txn_key, batch_key, [claim_hex, event_hex, clinic_hex], [event_hex], payload, wait=wait, auth_user=auth_user, auth_password=auth_password)