0

Here I have created a type to use json_populate_recordset function .

CREATE TYPE Visits_type AS
    (facilityId varchar,patientId varchar,encounterId numeric,patientClass varchar,admnDate varchar,dischargeDate varchar,practitionerId varchar,
     careLocationType varchar,careLocationCode varchar,specialtyCode varchar,status varchar,admitPractitionerId varchar,hpSeqNo varchar,admissionType varchar,assignedRoom varchar,assignedBed varchar,
     Firstname varchar,
     Patientname varchar,
     Firstnamelocal varchar,
     Patientnamelocal varchar,
     sex varchar,
     Dob varchar,
     Mobilenumber varchar,
     Emailid varchar,
     RegnFacilityid varchar);

following Sample sql and json is used:

SELECT * from json_populate_recordset(null::Visits_type, '[
  {
    "facilityId": "10","patientId": "GH00000940","encounterId": 100011770001,"patientClass": "OP","admnDate": "2015-05-17 17:25","dischargeDate": null,"practitionerId": "ALLEN","careLocationType": "C","careLocationCode": "CL11","specialtyCode": "SP11",   "status": "E",    "admitPractitionerId": null,    "hpSeqNo": 3796,    "admissionType": "First Visit",    "assignedRoom": "R1",    "assignedBed": null,    "firstName": "Suresh",    "patientName": "Suresh    Machwal",    "firstNameLocal": null,    "patientNameLocal": null,    "sex": "M",    "dob": "1970-05-17",    "mobileNumber": null,    "emailId": null,    "regnFacilityId": "GH"  },  {
    "facilityId": "10",
    "patientId": "GH00000940",
    "encounterId": 100011770001,
    "patientClass": "OP",
    "admnDate": "2015-05-17 17:25",
    "dischargeDate": null,
    "practitionerId": "ALLEN",
    "careLocationType": "C",
    "careLocationCode": "CL11",
    "specialtyCode": "SP11",
    "status": "E",
    "admitPractitionerId": null,
    "hpSeqNo": 3795,
    "admissionType": "First Visit",
    "assignedRoom": "R1",
    "assignedBed": null,
    "firstName": "Suresh",
    "patientName": "Suresh    Machwal",
    "firstNameLocal": null,
    "patientNameLocal": null,
    "sex": "M",
    "dob": "1970-05-17",
    "mobileNumber": null,
    "emailId": null,
    "regnFacilityId": "GH"
  }]');

The issue is that its returning null values for all the fields, except for then dob, status and sex.

1
  • i can see the actual values when i query.. but when the use FOR I IN (SELECT * FROM json_populate_recordset(null::visits_type,visit_info->'visits')) LOOP .. I get error i.patientID field is not available. I is of TYPE visit_type which i created with double quotes Commented Apr 29, 2016 at 6:51

1 Answer 1

4

You should be using double quotes when you create your type to keep your original case:

CREATE TYPE Visits_type AS
    ("facilityId" varchar,
     "patientId" varchar,
     "encounterId" numeric,
     "patientClass" varchar,
     "admnDate" varchar,
     "dischargeDate" varchar,
     "practitionerId" varchar,
     "careLocationType" varchar,
     "careLocationCode" varchar,
     "specialtyCode" varchar,
     "status" varchar,
     "admitPractitionerId" varchar,
     "hpSeqNo" varchar,
     "admissionType" varchar,
     "assignedRoom" varchar,
     "assignedBed" varchar,
     "Firstname" varchar,
     "Patientname" varchar,
     "Firstnamelocal" varchar,
     "Patientnamelocal" varchar,
     "sex" varchar,
     "Dob" varchar,
     "Mobilenumber" varchar,
     "Emailid" varchar,
     "RegnFacilityid" varchar);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.