GithubHelp home page GithubHelp logo

Comments (8)

mjawabrah avatar mjawabrah commented on August 19, 2024

but if i pass resolveReferences: ["identifier.0.assigner"] its return single reference, but i need to return all references

from client-js.

vlad-ignatov avatar vlad-ignatov commented on August 19, 2024

That is correct. References are specified using a dot-separated path like identifier or identifier.0. assigner. What you are looking for would look like identifier[all]. assigner but such expressions are not supported (and are more or less beyond the scope of this library).

What you can do is use resolveReferences : "identifier" to get all the identifiers and then transform them like so:

const assigners = references.map(x => x.assigner);

from client-js.

ahmadnairat avatar ahmadnairat commented on August 19, 2024

where should I put this:
"const assigners = references.map(x => x.assigner);"

from client-js.

vlad-ignatov avatar vlad-ignatov commented on August 19, 2024

Are you trying to this for single organization, or for all organizations on the server, or for several organizations that you have filtered somehow?

from client-js.

mjawabrah avatar mjawabrah commented on August 19, 2024

For Single organization I need to show organization details and inside organization details I display organization information (name , ...) and table Listing identifiers and for each identifier I need to display who the assigner(assigner organization name).

from client-js.

vlad-ignatov avatar vlad-ignatov commented on August 19, 2024

Well, it looks like there is no simple way to do this. I may consider augmenting those paths to support some basic expressions, but it is not going to happen soon. Until then, you would have to fetch your orgs manually. That might look like this (I've not tested this code):

client.request("Organization/orgID").then(org => {

    // For each identifier (if any)
    return Promise.all((org.identifier || []).map(o => {

        // If this identifier includes assigner.reference
        const ref = client.getPath(o, "assigner.reference");
        if (ref) {

            // fetch the reference and mount the result "assigner"
            return client.request(ref).then(result => o.assigner = result);
        }

        // If no assigner.reference is found resolve and continue
        return o;
    }))

    // return the (possibly modified) organization
    .then(() => org);
}).then(org => {
    // org should have identifier[..].assigner set to the resolved objects
});```

from client-js.

bradcurfman avatar bradcurfman commented on August 19, 2024

Vlad, did you add the above functionality into the library to retrieve all references in the array? The documentation for resolveReferences() indicates you can leave off the index value to have all references in the array resolved. But I can only get the resolve to work when I specify an index.
http://docs.smarthealthit.org/client-js/client.html

from client-js.

vlad-ignatov avatar vlad-ignatov commented on August 19, 2024

To be clear, the docs state that you can use identifier to get all identifiers (if they were references), or identifier.0 to get the first one. Your case is a little different, bu I understand why you need it.

In the latest version (2.3.8) I added support for the .. path operator to allow paths like identifier..assigner, which will match if identifier is an array of objects having an assigner reference property. This should finally solve you case.

from client-js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.