1

I have a file that contains the following HL7 Information :

{
  MESSAGE_HEADER: {
    SENDING_APPLICATION: 'IQCARE',
    SENDING_FACILITY: '10829',
    RECEIVING_APPLICATION: 'IL',
    RECEIVING_FACILITY: '10829',
    MESSAGE_DATETIME: '20170713110000',
    SECURITY: '',
    MESSAGE_TYPE: 'ADT^A04',
    PROCESSING_ID: 'P'
  },
  PATIENT_IDENTIFICATION: {
    EXTERNAL_PATIENT_ID: {
      ID: '110ec58a-a0f2-4ac4-8393-c866d813b8d1',
      IDENTIFIER_TYPE: 'GODS_NUMBER',
      ASSIGNING_AUTHORITY: 'MPI'
    }}}

I want to convert this message to a json object and I did the following :

// copy file content into a string var
        $json_file = file_get_contents("" . getcwd() . "\integration_layer\ADT^A04 - Patient Registration.json");
        echo gettype($json_file);
// convert the string to a json object
        $jfo = json_decode($json_file);
// read the title value
        $title = $jfo->MESSAGE_HEADER->SENDING_APPLICATION;
// copy the posts array to a php var
        $posts = $jfo->PATIENT_IDENTIFICATION->EXTERNAL_PATIENT_ID;
// listing posts
        foreach ($posts as $post) {
            echo $post->ID;
        }

But I get the following error :

Severity: Notice

Message: Trying to get property of non-object

When I user the getype function of PHP on the $json_file , it is a string file. How can I convert the message to an object for my own system consumption ?

2
  • 1
    Your JSON file is not a valid JSON. JSON key needs to be a string encapsulated with quotes. 'SENDING_APPLICATION': 'IQCARE'. Commented Sep 2, 2017 at 13:59
  • If the JSON string was correct, then json_decode( ...) would convert it into an object in PHP. Commented Sep 2, 2017 at 14:03

1 Answer 1

1

Please validate your JSON code.

JSON rules

  1. Data is in name/value pairs
  2. Data is separated by commas
  3. Curly braces hold objects - Your file contains no parent object
  4. Square brackets hold arrays
  5. A name/value pair consists of a field name (in double quotes). - Your name fields are not in double quotes

Valid JSON code:

    {
        "MESSAGE_HEADER": {
            "SENDING_APPLICATION": "IQCARE",
            "SENDING_FACILITY": 10829,
            "RECEIVING_APPLICATION": "IL",
            "RECEIVING_FACILITY": 10829,
            "MESSAGE_DATETIME": "20170713110000",
            "SECURITY": "",
            "MESSAGE_TYPE": "ADT^A04",
            "PROCESSING_ID": "P"
        },
        "PATIENT_IDENTIFICATION": {
            "EXTERNAL_PATIENT_ID": {
                "ID": "110ec58a-a0f2-4ac4-8393-c866d813b8d1",
                "IDENTIFIER_TYPE": "GODS_NUMBER",
                "ASSIGNING_AUTHORITY": "MPI"
            }
        }   
    }

Working PHP example with valid JSON code:

<?php

    $json = '
        {
            "MESSAGE_HEADER": {
                "SENDING_APPLICATION": "IQCARE",
                "SENDING_FACILITY": 10829,
                "RECEIVING_APPLICATION": "IL",
                "RECEIVING_FACILITY": 10829,
                "MESSAGE_DATETIME": "20170713110000",
                "SECURITY": "",
                "MESSAGE_TYPE": "ADT^A04",
                "PROCESSING_ID": "P"
            },
            "PATIENT_IDENTIFICATION": {
                "EXTERNAL_PATIENT_ID": {
                    "ID": "110ec58a-a0f2-4ac4-8393-c866d813b8d1",
                    "IDENTIFIER_TYPE": "GODS_NUMBER",
                    "ASSIGNING_AUTHORITY": "MPI"
                }
            }   
        }
    ';

    $object = json_decode($json);

    echo $object->MESSAGE_HEADER->SENDING_APPLICATION;

?>
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.