Beispiel #1
0
def imgData_json(request, imageId, conn=None, **kwargs):

    image = conn.getObject("Image", imageId)
    if image is None:
        raise Http404("Image not found")
    rv = imageMarshal(image)

    sizeT = image.getSizeT()
    timeList = []
    if sizeT > 1:
        params = omero.sys.ParametersI()
        params.addLong('pid', image.getPixelsId())
        query = "from PlaneInfo as Info where"\
            " Info.theZ=0 and Info.theC=0 and pixels.id=:pid"
        infoList = conn.getQueryService().findAllByQuery(
            query, params, conn.SERVICE_OPTS)
        timeMap = {}
        for info in infoList:
            tIndex = info.theT.getValue()
            time = int(info.deltaT.getValue())
            timeMap[tIndex] = time
        for t in range(image.getSizeT()):
            if t in timeMap:
                timeList.append(timeMap[t])
    rv['deltaT'] = timeList

    return HttpResponse(json.dumps(rv), content_type='json')
Beispiel #2
0
def img_data_json(request, image_id, conn=None, **kwargs):

    image = conn.getObject("Image", image_id)
    if image is None:
        raise Http404("Image not found")

    # Test if we have Units support (OMERO 5.1)
    px = image.getPrimaryPixels().getPhysicalSizeX()
    pix_size_x = str(px)  # As string E.g. "0.13262 MICROMETER"
    units_support = " " in pix_size_x

    rv = imageMarshal(image)

    if units_support:
        # Add extra parameters with units data
        # NB ['pixel_size']['x'] will have size in MICROMETER
        px = image.getPrimaryPixels().getPhysicalSizeX()
        rv['pixel_size']['valueX'] = px.getValue()
        rv['pixel_size']['symbolX'] = px.getSymbol()
        rv['pixel_size']['unitX'] = str(px.getUnit())
        py = image.getPrimaryPixels().getPhysicalSizeY()
        rv['pixel_size']['valueY'] = py.getValue()
        rv['pixel_size']['symbolY'] = py.getSymbol()
        rv['pixel_size']['unitY'] = str(py.getUnit())
    size_t = image.getSizeT()
    time_list = []
    if size_t > 1:
        time_list = get_timestamps(conn, image)
    rv['deltaT'] = time_list

    return HttpResponse(json.dumps(rv), content_type='json')
Beispiel #3
0
def image_data(request, image_id, conn=None, **kwargs):

    image = conn.getObject("Image", image_id)

    if image is None:
        return JsonResponse({"error": "Image not found"}, status=404)

    try:
        rv = imageMarshal(image)

        # set roi count
        rv['roi_count'] = image.getROICount()

        # Add extra parameters with units data
        # Note ['pixel_size']['x'] will have size in MICROMETER
        px = image.getPrimaryPixels().getPhysicalSizeX()
        if (px is not None):
            size = image.getPixelSizeX(True)
            value = format_pixel_size_with_units(size)
            rv['pixel_size']['unit_x'] = value[0]
            rv['pixel_size']['symbol_x'] = value[1]
        py = image.getPrimaryPixels().getPhysicalSizeY()
        if (py is not None):
            size = image.getPixelSizeY(True)
            value = format_pixel_size_with_units(size)
            rv['pixel_size']['unit_y'] = value[0]
            rv['pixel_size']['symbol_y'] = value[1]
        pz = image.getPrimaryPixels().getPhysicalSizeZ()
        if (pz is not None):
            size = image.getPixelSizeZ(True)
            value = format_pixel_size_with_units(size)
            rv['pixel_size']['unit_z'] = value[0]
            rv['pixel_size']['symbol_z'] = value[1]

        delta_t_unit_symbol = None
        rv['delta_t_unit_symbol'] = delta_t_unit_symbol
        df = "%Y-%m-%d %H:%M:%S"
        rv['import_date'] = image.creationEventDate().strftime(df)
        if image.getAcquisitionDate() is not None:
            rv['acquisition_date'] = image.getAcquisitionDate().strftime(df)

        # add available families
        rv['families'] = []
        families = image.getFamilies().values()
        for fam in families:
            rv['families'].append(fam.getValue())

        return JsonResponse(rv)
    except Exception as image_data_retrieval_exception:
        return JsonResponse({'error': repr(image_data_retrieval_exception)})
Beispiel #4
0
def img_data_json(request, image_id, conn=None, **kwargs):

    image = conn.getObject("Image", image_id)
    if image is None:
        raise Http404("Image not found")

    # Test if we have Units support (OMERO 5.1)
    px = image.getPrimaryPixels().getPhysicalSizeX()
    pix_size_x = str(px)  # As string E.g. "0.13262 MICROMETER"
    units_support = " " in pix_size_x

    rv = imageMarshal(image)

    if units_support:
        # Add extra parameters with units data
        # NB ['pixel_size']['x'] will have size in MICROMETER
        px = image.getPrimaryPixels().getPhysicalSizeX()
        rv['pixel_size']['valueX'] = px.getValue()
        rv['pixel_size']['symbolX'] = px.getSymbol()
        rv['pixel_size']['unitX'] = str(px.getUnit())
        py = image.getPrimaryPixels().getPhysicalSizeY()
        rv['pixel_size']['valueY'] = py.getValue()
        rv['pixel_size']['symbolY'] = py.getSymbol()
        rv['pixel_size']['unitY'] = str(py.getUnit())
    size_t = image.getSizeT()
    time_list = []
    if size_t > 1:
        params = omero.sys.ParametersI()
        params.addLong('pid', image.getPixelsId())
        query = "from PlaneInfo as Info where"\
            " Info.theZ=0 and Info.theC=0 and pixels.id=:pid"
        info_list = conn.getQueryService().findAllByQuery(
            query, params, conn.SERVICE_OPTS)
        timemap = {}
        for info in info_list:
            t_index = info.theT.getValue()
            if info.deltaT is not None:
                # planeInfo.deltaT gives number only (no units)
                # Therefore compatible with OMERO 5.0 and 5.1
                delta_t = int(round(info.deltaT.getValue()))
                timemap[t_index] = delta_t
        for t in range(image.getSizeT()):
            if t in timemap:
                time_list.append(timemap[t])
    rv['deltaT'] = time_list

    return HttpResponse(json.dumps(rv), content_type='json')
Beispiel #5
0
def img_data_json(request, image_id, conn=None, **kwargs):

    image = conn.getObject("Image", image_id)
    if image is None:
        raise Http404("Image not found")

    # Test if we have Units support (OMERO 5.1)
    px = image.getPrimaryPixels().getPhysicalSizeX()
    pix_size_x = str(px)  # As string E.g. "0.13262 MICROMETER"
    units_support = " " in pix_size_x

    rv = imageMarshal(image)

    if units_support:
        # Add extra parameters with units data
        # NB ['pixel_size']['x'] will have size in MICROMETER
        px = image.getPrimaryPixels().getPhysicalSizeX()
        rv['pixel_size']['valueX'] = px.getValue()
        rv['pixel_size']['symbolX'] = px.getSymbol()
        rv['pixel_size']['unitX'] = str(px.getUnit())
        py = image.getPrimaryPixels().getPhysicalSizeY()
        rv['pixel_size']['valueY'] = py.getValue()
        rv['pixel_size']['symbolY'] = py.getSymbol()
        rv['pixel_size']['unitY'] = str(py.getUnit())
    size_t = image.getSizeT()
    time_list = []
    if size_t > 1:
        params = omero.sys.ParametersI()
        params.addLong('pid', image.getPixelsId())
        query = "from PlaneInfo as Info where"\
            " Info.theZ=0 and Info.theC=0 and pixels.id=:pid"
        info_list = conn.getQueryService().findAllByQuery(
            query, params, conn.SERVICE_OPTS)
        timemap = {}
        for info in info_list:
            t_index = info.theT.getValue()
            if info.deltaT is not None:
                # planeInfo.deltaT gives number only (no units)
                # Therefore compatible with OMERO 5.0 and 5.1
                delta_t = int(round(info.deltaT.getValue()))
                timemap[t_index] = delta_t
        for t in range(image.getSizeT()):
            if t in timemap:
                time_list.append(timemap[t])
    rv['deltaT'] = time_list

    return HttpResponse(json.dumps(rv), content_type='json')
Beispiel #6
0
def image_data(request, image_id, conn=None, **kwargs):

    image = conn.getObject("Image", image_id)

    if image is None:
        return JsonResponse({"error": "Image not found"}, status=404)

    try:
        desc = image.getDescription()
        if len(desc) <= 0:
            image.setDescription('1')
            image.save()
            desc = '1'

        rv = imageMarshal(image)

        rv['isAdmin'] = conn.isAdmin()
        rv['curUserId'] = conn.getUserId()
        rv['curStep'] = int(desc)

        # set roi count
        rv['roi_count'] = image.getROICount()

        # Add extra parameters with units data
        # Note ['pixel_size']['x'] will have size in MICROMETER
        px = image.getPrimaryPixels().getPhysicalSizeX()
        if (px is not None):
            size = image.getPixelSizeX(True)
            value = format_value_with_units(size)
            rv['pixel_size']['unit_x'] = value[0]
            rv['pixel_size']['symbol_x'] = value[1]
        py = image.getPrimaryPixels().getPhysicalSizeY()
        if (py is not None):
            size = image.getPixelSizeY(True)
            value = format_value_with_units(size)
            rv['pixel_size']['unit_y'] = value[0]
            rv['pixel_size']['symbol_y'] = value[1]
        pz = image.getPrimaryPixels().getPhysicalSizeZ()
        if (pz is not None):
            size = image.getPixelSizeZ(True)
            value = format_value_with_units(size)
            rv['pixel_size']['unit_z'] = value[0]
            rv['pixel_size']['symbol_z'] = value[1]

        size_t = image.getSizeT()
        time_list = []
        delta_t_unit_symbol = None
        if size_t > 1:
            params = omero.sys.ParametersI()
            params.addLong('pid', image.getPixelsId())
            z = 0
            c = 0
            query = "from PlaneInfo as Info where"\
                " Info.theZ=%s and Info.theC=%s and pixels.id=:pid" % (z, c)
            info_list = conn.getQueryService().findAllByQuery(
                query, params, conn.SERVICE_OPTS)
            timemap = {}
            for info in info_list:
                t_index = info.theT.getValue()
                if info.deltaT is not None:
                    value = format_value_with_units(info.deltaT)
                    timemap[t_index] = value[0]
                    if delta_t_unit_symbol is None:
                        delta_t_unit_symbol = value[1]
            for t in range(image.getSizeT()):
                if t in timemap:
                    time_list.append(timemap[t])

        rv['delta_t'] = time_list
        rv['delta_t_unit_symbol'] = delta_t_unit_symbol
        df = "%Y-%m-%d %H:%M:%S"
        rv['import_date'] = image.creationEventDate().strftime(df)
        if image.getAcquisitionDate() is not None:
            rv['acquisition_date'] = image.getAcquisitionDate().strftime(df)

        # add available families
        rv['families'] = []
        families = image.getFamilies().values()
        for fam in families:
            rv['families'].append(fam.getValue())

        # rv['perms']['canAnnotate']= True

        return JsonResponse(rv)
    except Exception as image_data_retrieval_exception:
        return JsonResponse({'error': repr(image_data_retrieval_exception)})
Beispiel #7
0
def image_data(request, image_id, conn=None, **kwargs):

    image = conn.getObject("Image", image_id)

    if image is None:
        return JsonResponse({"error": "Image not found"}, status=404)

    try:
        rv = imageMarshal(image)

        # Add extra parameters with units data
        # Note ['pixel_size']['x'] will have size in MICROMETER
        px = image.getPrimaryPixels().getPhysicalSizeX()
        if (px is not None):
            size = image.getPixelSizeX(True)
            value = format_value_with_units(size)
            rv['pixel_size']['unit_x'] = value[0]
            rv['pixel_size']['symbol_x'] = value[1]
        py = image.getPrimaryPixels().getPhysicalSizeY()
        if (py is not None):
            size = image.getPixelSizeY(True)
            value = format_value_with_units(size)
            rv['pixel_size']['unit_y'] = value[0]
            rv['pixel_size']['symbol_y'] = value[1]
        pz = image.getPrimaryPixels().getPhysicalSizeZ()
        if (pz is not None):
            size = image.getPixelSizeZ(True)
            value = format_value_with_units(size)
            rv['pixel_size']['unit_z'] = value[0]
            rv['pixel_size']['symbol_z'] = value[1]

        size_t = image.getSizeT()
        time_list = []
        delta_t_unit_symbol = None
        if size_t > 1:
            params = omero.sys.ParametersI()
            params.addLong('pid', image.getPixelsId())
            z = 0
            c = 0
            query = "from PlaneInfo as Info where"\
                " Info.theZ=%s and Info.theC=%s and pixels.id=:pid" % (z, c)
            info_list = conn.getQueryService().findAllByQuery(
                query, params, conn.SERVICE_OPTS)
            timemap = {}
            for info in info_list:
                t_index = info.theT.getValue()
                if info.deltaT is not None:
                    value = format_value_with_units(info.deltaT)
                    timemap[t_index] = value[0]
                    if delta_t_unit_symbol is None:
                        delta_t_unit_symbol = value[1]
            for t in range(image.getSizeT()):
                if t in timemap:
                    time_list.append(timemap[t])

        rv['delta_t'] = time_list
        rv['delta_t_unit_symbol'] = delta_t_unit_symbol

        return JsonResponse(rv)
    except Exception as image_data_retrieval_exception:
        return JsonResponse({'error': repr(image_data_retrieval_exception)})