Install iTop on Linux

Problem

  • Install itop on Linux with SELinux

Setting

  • Oracle Linux
  • iTop Version 2.3.4

Solution

Install MySQL

yum install mysql mysql-server

#Set root password
/usr/bin/mysql_secure_installation

mysql – u -p <>

mysql> create database itop;
mysql> create user ‘itop’@’%’ identified by ‘itop-password’;
mysql> grant all privileges on itop.* to ‘itop’@’%’;

mysql> quit;

Install Apache and PHP

yum install httpd php php-mysql php-xml php-soap

systemctl start httpd

Get iTop

wget https://downloads.sourceforge.net/project/itop/itop/2.3.4/iTop-2.3.4-3302.zip?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fitop%2Ffiles%2Fitop%2F2.3.4%2F&ts=1502963636&use_mirror=10gbps-io

Files

mv ./web /var/www/itop

cd /var/www/html/itop

mkdir conf
mkdir env-production

chmod 777 conf
chmod 777 data
chmod 777 env-production
chmod 777 log

# If SELinux blocks access
chcon –user system_u –type httpd_sys_content_t -Rv /var/www/html/itop/
# or
sudo setenforce 0

Start install process

Go in your browser and type: http://localhost/itop

Fin

 

Simple HTTP GET with Node.JS

Problem

  • Need a simple HTTP GET call with return value

Solution

var http = require(“http”);
hget(“127.0.0.1”, “8086”,”/exampleCall”,
    function (data) {
        //process your data here
    });
function hget(url, port, path, callbackData) {
    var options = {
        host: url,
        port: port,
        path: path
    };
    callback = function (response) {
        var body = ”;
        response.on(‘data’, function (chunk) {
            body += chunk;
        });
        response.on(‘end’, function () {
            callbackData(body);
        });
    }
    var req = http.request(options, callback).end();
}

101 for REST API with Swagger, ASP.NET and C#

Short summary about my lessons learned for a REST API with Swagger, ASP.NET and C#.

Configuration

Open the file SwaggerConfig.cs. For the first demo, we name our app and enable the UI:

GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion(“v1”, “API Demonstration”);
})
.EnableSwaggerUi();

SwaggerUI

The SwaggerUI can be found under:

http://localhost:%5BPORT_NUM%5D/swagger

Documentation

If you need documentation for you methods, parameters or controller, you have to enable the XML documentation file:

swagger_doku

Remember the path, you will have to add it to your Swagger configuration. This all the other configurations it should look like this:

GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion(“v1”, “API Demonstration”);
c.IncludeXmlComments(string.Format(@”{0}\App_Data\API-Test.XML”, System.AppDomain.CurrentDomain.BaseDirectory));
})
.EnableSwaggerUi();

To use the documentation, you can commentary to every method. Remember, you can use HTML formatting.

swagger_docu2

Path Parameters

Path parameters are fixed elements of the URL and are not optional. They can be set by the Route element. Every parameter is configured via {} brackets and have to match with the method parameters:

[HttpGet]
[Route(“test/route/{para1}/{para2}”)]
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(String))]
[SwaggerResponse(HttpStatusCode.BadRequest, Description = “Bad Request”)]
[SwaggerResponse(HttpStatusCode.NotFound, Description = “Not found”)]

public string test(string para1, int para2)
{

The Request URL looks like this:

http://localhost:50283/test/route/Hello/7

Query Parameters

Query parameters are not part of the base URL. If tw want para2 to be a query parameter, just exclude it from the Route:

 

[HttpGet]
[Route(“test/route/{para1}”)]
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(String))]
[SwaggerResponse(HttpStatusCode.BadRequest, Description = “Bad Request”)]
[SwaggerResponse(HttpStatusCode.NotFound, Description = “Not found”)]

public string test(string para1, int para2)
{

The Request URL looks like this:

http://localhost:50283/test/route/Hello?para2=7

(This can also be done with para1)

Optional Parameters

If you want optional parameter, just add a default value for the parameter.

[HttpGet]
[Route(“test/route/{para1}”)]
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(String))]
[SwaggerResponse(HttpStatusCode.BadRequest, Description = “Bad Request”)]
[SwaggerResponse(HttpStatusCode.NotFound, Description = “Not found”)]

public string test(string para1, int para2=0)
{

Validating DateTime

You will get a 404 – Bad Request, if you use DateTime within a path parameter like this:

http://localhost:50283/test/route/2017-05-26T12:30:00

You have to options.

1. Use a query parameter like this: http://localhost:50283/test/route?time=2017-05-26T12:30:00

2. Change your web.config:

<configuration>

<system.web>

<httpRuntime requestPathInvalidCharacters=”” requestValidationMode=”2.0″ />
<pages validateRequest=”false” />
</system.web>
..
</configuration>

Tutorial – Using Oracle Managed Data Access in ASP.NET and C#

1. Install  Oracle.ManagedDataAccess via NuGet package managernuget.PNG

2. Define your data source

Open your Web.config and add to the configuration the following:

<oracle.manageddataaccess.client>
<version number=”*”>
<dataSources>
<dataSource alias=”EXAMPLE” descriptor=”(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=YOUR_HOST_NAME)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=YOUR_SERVICE_NAME)))” />
</dataSources>
</version>
</oracle.manageddataaccess.client>

Here you can read, how to get your HOST_NAME and SERVICE_NAME.

3. Connect to your Oracle

using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;

….

public OracleConnection connectOracle()
{
OracleConnection con = null;
OracleCommand cmd = null;
OracleDataReader reader = null;
try
{
string constr = “user id=YYYYYYY;password=XXXXXXX;data source=EXAMPLE”;
con = new OracleConnection(constr);
con.Open();
cmd = new OracleCommand(“select * from SOMETABLE t”, con);
cmd.CommandType = System.Data.CommandType.Text;

reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader.GetString(0)) //Just example
}
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace.ToString());
}
finally
{
if (reader != null && !reader.IsClosed)
reader.Close();
if (con != null && con.State == System.Data.ConnectionState.Open)
con.Close();
con.Dispose();
}
}

Fin.

isynet / Medatixx – Textbausteine verwalten

Problem Sie wollen die Textbausteine verwalten Lösung 1. DT eingeben und Enter   2. Es öffnet sich die Textbausteinmaske Textbausteine sind in Kategorien eingeteilt, die sich unter Texttyp verbergen: T             Texte TB           Textbausteine AN         Anamnesetexte AB          Aktueller Befund JOB        Job BEG       Begründungen Um eine Übersicht über die aktuellen Texte zu bekommen, einfach auf die Lupe links unten drücken. […]

isynet / Medatixx – Labor Ident. ändern

Problem

  • Sie müssen ein neues Lesegerät für die (elektronische) Gesundheitskarte in isynet / Medatixx einrichten

Lösung

1. Gehen Sie in Register Labor, dann unten „KLAB Konfiguration Labor”

01_ident

2. Klicken Sie links unten auf die Suche

02_ident

3. Auswählen des Labors mit Doppelklick

03_ident

4. Vergabe-Ident wie gewünscht ändern.

04_ident

Wenn Sie Fragen haben, kontaktieren Sie mich einfach.

Fin.

 

eGK Lesegerät in isynet / Medatixx wechseln

Problem

  • Sie müssen das Lesegerät für die (elektronische) Gesundheitskarte in isynet / Medatixx wechseln

Lösung

mtixx_01_para

Im zentralen Suchfeld PARA eingeben und dann Enter. Es erscheint der Dialog für Systemparameter.

Der sieht so aus:

mtixx_02_para

Dann den korrekten Arbeitsplatz auswählen. Hier im Beispiel die Anmeldung. Dadurch ändert sich die Ansicht auf der rechten Seite und es erscheint eGK (MKT/BCS).

mtixx_03_para

Dieses mit dem + Zeichen öffnen. Dadurch sieht man die Konfiguration des Lesegeätes.

lesegeraet_wechseln

In diesem Falle ist es Lesegerät Nr. 2 (Ingenico ORGA 920) das wir haben wollen. Bei „Aktive Lesegerät“ die 2 wählen und mit OK speichern.

Wenn Sie Fragen haben, kontaktieren Sie mich einfach.

Fin.

eGK Lesegerät in isynet / Medatixx einrichten

Problem

  • Sie müssen ein neues Lesegerät für die (elektronische) Gesundheitskarte in isynet / Medatixx einrichten

Lösung

mtixx_01_para

Im zentralen Suchfeld PARA eingeben und dann Enter. Es erscheint der Dialog für Systemparameter.

Der sieht so aus:

mtixx_02_para

Dann den korrekten Arbeitsplatz auswählen. Hier im Beispiel die Anmeldung. Dadurch ändert sich die Ansicht auf der rechten Seite und es erscheint eGK (MKT/BCS).

mtixx_03_para

Dieses mit dem + Zeichen öffnen. Dadurch sieht man die Konfiguration des Lesegeätes.

mtixx_04_para

Wichtig sind die Einstellungen Anschluß und Port. Wählen die Form, mit der Sie das Gerät angeschlossen haben – USB oder COM (Serielle Schnittstelle).

Dann muss nur noch der Port gesetzt werden. Hier ein wenig probieren, es ist zumeist entweder der COM4 oder COM3 (egal ob USB oder COM Anschluß).

Wenn Sie Fragen haben, kontaktieren Sie mich einfach.

Fin.

 

 

Missing api-ms-win-crt-runtime-l1-1-0.dll

Problem

error

  • The api-ms-win-crt-runtime-l1-1-0.dll is missing
  • Sub problem: you can not install Visual C++ Redistributable for Visual Studio because Windows Update, especially on Windows Vista, doesn’t work. (it runs hour for hour and exits with an error)

Solution

Normally, you only have to install the VC++ Redistributable for your computer:

Visual C++ Redistributable for Visual Studio 2017 (64-bit)

Visual C++ Redistributable for Visual Studio 2017 (32-bit)

Windows Update

If you can not install VC++ it is most likely because of the broken Windows Update process:

Here is what i did:

  1. Uninstall VC++, by starting the installer and select Uninstall.
  2. Restart computer
  3. Open cmd as administrator
  4. Type: net stop wuauserv
  5. Install VC++

This installs VC++ without problems. You can restart Windows Update with net start wuauserv